iT邦幫忙

2023 iThome 鐵人賽

DAY 2
0
Security

為駭而生 - Python 系列 第 3

Day 03 - Networking概念、在Kali使用Python、 Sockets & TCP客戶端

  • 分享至 

  • xImage
  •  

Sharpen Python skills in the field of cybersecurity.
讓在資安領域我們磨利Python技術。

目錄

  • Networking 概念
  • 在 Kali 使用 Python
  • Sockets
  • TCP 客戶端

看文前, 你應該要具備以下基礎能力:


Let's get started! 開始吧!


Networking概念

TCP & UDP的差異 | FreeCodeCamp

source image from wikipedia


Python in Kali

新手指南: 如何在kali使用python| infoseccout.com

🔸Run the python file

以下指令,展示如何跑名為test的python檔案。

python test.py

🔸Install packages

舉例來說,安裝 Nmap.

sudo apt install python3-nmap

Sockets

🔸核心模組 Core Module

  • sockets 非常關鍵
  • sockets 和 socket API 被用來在網路間傳送訊息。

⭐更多關於sockets | Real Python
🔸TCP
傳輸控制協議 Transmission Control Protocol (TCP)

  • 可靠(reliable): 在網路中丟失的Packets會被偵測到,並被傳送者(sender)重新傳送。
  • 有序傳送: 你的應用程式會以傳送者寫入的順序閱讀資料。

🔸UDP
使用者資料報協定 User Datagram Protocol (UDP)

  • 不可靠
  • 接收者(receiver)閱讀資料的方式可能不照順序,即和傳送者(sender)寫入的方式不同。

- Real Python


建立客戶端

🔸TCP 客戶端(Client)

# test.py
import socket

HOST = "www.google.com" 
PORT = 80

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

client.connect((HOST, PORT))

client.send(b"GET / HTTP/1.1\r\nHOST: google.com\r\n\r\n")

response = client.recv(4096)

print(response.decode())
client.close()
  • AF_INET 參數: 我們會使用標準IPv4位址或主機名稱(hostname)
  • AF_INET參數: 這會成為TCP客戶端
  • 連接客戶端到伺服器
  • 接著我們傳送一些資料
  • 接收一些回傳的資料
  • 輸出伺服器回應(response)

上一篇
Day 02 - 更新 Python, 安裝虛擬環境 & Install IDE
下一篇
Day 04 - UDP 客戶端(Client) & 回聲伺服器(Echo Server)
系列文
為駭而生 - Python 18
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言